Skip to content

test: make tests independent of zip encoding#3239

Open
supervacuus wants to merge 2 commits intogetsentry:masterfrom
supervacuus:test/chunk-zip-stable
Open

test: make tests independent of zip encoding#3239
supervacuus wants to merge 2 commits intogetsentry:masterfrom
supervacuus:test/chunk-zip-stable

Conversation

@supervacuus
Copy link

Description

Extracted from #3237

This change was triggered by bumping symbolic to 12.17.3 to include getsentry/symbolic#960.

symbolic updated its zip dependency (2.4.2 to 7.2.0) since the last bump. This changed encoding internals and invalidated a bunch of test assertions.

The PR addresses the issue in the following way:

I rewrote the affected tests so that they decode the incoming chunks and compare their contents against the fixtures, rather than snapshotting, which could break with every change to the encoder. I also simplified the usage of split_chunk_body() a bit: now it returns a Vec, and callers decide how they want to view the data: the simple tests collect into a HashSet for set comparison, while the small-chunk tests use a SHA1 digest multimap to verify exact chunk identity and multiplicity.

If you actually wanted an early warning whether the encoding was stable, then we can drop this PR.

Specifically, for build_deterministic() in src/utils/source_bundle.rs, it was not entirely clear whether you want two runs of the same version to have predictably the same output (which I changed it to) or whether it should actually be stable across future versions (which a zip crate bump upstream would break).

Issues

Raised as part of the fix proposals for getsentry/sentry#104738

Legal Boilerplate

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

@supervacuus supervacuus requested review from a team and szokeasaurusrex as code owners March 24, 2026 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant